#include<sys/types.h>
#include<sys/socket.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<netinet/in.h>
#include<netinet/ip.h>
#include<arpa/inet.h>
#include<unistd.h>

struct password
{
	char id[20];
	char passwd[20];
	int flag;
};

void sign_in(int connectfd)
{
	struct password pw;
	char repw[20];
	pw.flag=2;
	printf("输入新用户名：");
	scanf("%s",pw.id);
	int nflag=-1;
	while(1)
	{
		printf("输入密码：");
		scanf("%s",pw.passwd);
		memset(repw,'\0',sizeof(repw));
		printf("再次输入密码：");
		scanf("%s",repw);
		if(strcmp(repw,pw.passwd)==0)
		{
			break;
		}
		else
		{
			printf("您两次密码输入不相同，请重新设置密码");
		}
	}
	send(connectfd,&pw,sizeof(pw),0);
	recv(connectfd,&nflag,sizeof(int),0);
	if(nflag==1)
	{
		printf("创建成功！已登陆，您好，%s\n",pw.id);
		chat(connectfd);
	}
	else
	{
		printf("用户名已存在，创建失败,请重新注册！\n");
		sign_in(connectfd);
	}
}
